using System.Collections.Generic;
using UnityEngine;

namespace Kayac
{
	public class AsyncModelProcessor
	{
		public class Job : ThreadPool.Job
		{
			private enum JobType
			{
				Create = 0,
				ToArrays = 1,
				Cut = 2
			}

			private JobType jobType;

			private string name;

			private IReadOnlyList<Vector3> vertices;

			private IReadOnlyList<Vector3> normals;

			private IReadOnlyList<Vector4> tangents;

			private IReadOnlyList<Vector2> uvs;

			private IReadOnlyList<Color32> colors;

			private IReadOnlyList<Model.PrimitiveList> primitiveLists;

			private Model model;

			private List<Vector3> verticesOut;

			private List<Vector3> normalsOut;

			private List<Vector4> tangentsOut;

			private List<Vector2> uvsOut;

			private List<Color32> colorsOut;

			private List<Model.PrimitiveList> primitiveListsOut;

			private Model frontOut;

			private Model backOut;

			private Plane plane;

			private float onPlaneTorrelance;

			private int cutFacePrimitiveListIndex;

			private Vector2 cutFaceUvCenter;

			private float cutFaceUvScale;

			public Model Model => null;

			public Job(string name, Mesh mesh)
			{
			}

			public Job(string name, IReadOnlyList<Vector3> vertices, IReadOnlyList<Vector3> normals, IReadOnlyList<Vector4> tangents, IReadOnlyList<Vector2> uvs, IReadOnlyList<Color32> colors, IReadOnlyList<Model.PrimitiveList> primitiveLists)
			{
			}

			public Job(Model model, List<Vector3> verticesOut, List<Vector3> normalsOut, List<Vector4> tangentsOut, List<Vector2> uvsOut, List<Color32> colorsOut, List<Model.PrimitiveList> primitiveListsOut)
			{
			}

			public Job(Model model, Model frontOut, Model backOut, Plane plane, float onPlaneTorrelance, int cutFacePrimitiveListIndex, Vector2 cutFaceUvCenter, float cutFaceUvScale)
			{
			}

			public override void Execute()
			{
			}
		}

		private ThreadPool threadPool;

		public AsyncModelProcessor(int threadCount)
		{
		}

		public void Dispose()
		{
		}

		public Job CreateModel(string name, IReadOnlyList<Vector3> vertices, IReadOnlyList<Vector3> normals, IReadOnlyList<Vector4> tangents, IReadOnlyList<Vector2> uvs, IReadOnlyList<Color32> colors, IReadOnlyList<Model.PrimitiveList> primitiveLists)
		{
			return null;
		}

		public Job CutModel(Model model, Model frontOut, Model backOut, Plane plane, float onPlaneTorrelance, int cutFacePrimitiveListIndex, Vector2 cutFaceUvCenter, float cutFaceUvScale)
		{
			return null;
		}
	}
}
